Alerting of language preference and translating across language boundaries

ABSTRACT

Mechanisms are provided to facilitate communications across language boundaries. In particular, translation solutions are described which automatically determine communication preferences of various participants in a communication session and further translate user inputs received during the communication session so as to confirm with communication preferences of the participants that receive the user input.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/235,838, filed Aug. 21, 2009, the entire disclosure of which is hereby incorporated herein by reference.

FIELD OF THE INVENTION

The present invention is generally directed toward communications and more specifically toward translating communications.

BACKGROUND

A user of a communication device frequently wants to interact with someone across a language boundary. This often creates problems, as each party to the interaction might not understand the other's preferred language or might have a different preferred language. Accordingly, there is a need for alerting of a language preference and translation into the preferred language to facilitate smoother interactions between participants.

Many web-based translation services translate text upon request according to computer algorithms. True automatic language translation services for communication devices are not as well known.

Many existing translation solutions are not convenient/effective/user-friendly enough to be appreciated or fully utilized by users. Many must be configured manually, thereby introducing the potential for user error. Many operate by exchanging language preference information before a communication begins only at the request of a user, which can be unfavorable and often leads to the translation solutions not being implemented until mid-call.

Some methods for translating speech and/or text are known in the prior art. However, many of these methods are cumbersome to the user, and may be less than transparent to the recipient. Some existing automatic translation services do a poor job of translating syntax and/or semantics. One approach in the past has been to seek to improve the translation mechanism, e.g., by either building a more robust and complete algorithm and/or providing an actual human translation. However, these methods fail to incorporate the speaker's own knowledge and appreciation of the syntax and semantics of his speech.

SUMMARY

It is with respect to the above issues and other problems that the embodiments presented herein were contemplated.

Embodiments of the present disclosure are provided to improve the existing methods for detecting and alerting of either a language preference or a change in language preference. In one embodiment, language preferences are stored in a communication preference profile associated with a communication device and/or a particular user. In some embodiments, the communication preference profile is contained within a larger user-profile that is maintained on a communication device. The communication preference profile may be queried to detect language preference, which may facilitate the automatic translation into the preferred language. This may be performed in real time, or “off-line.”

In some embodiments, the communication preference profile simply contains a listing of languages which the user can (i) speak, (ii) understand, and/or (iii) has fluency. The communication preference profile may also provide priorities for languages if the user has the ability to one of (i) speak, (ii) understand, and/or (iii) converse fluently in two or more languages. In some embodiments, the priorities for each language may be absolute. In some embodiments, the priorities for each language may vary according to communication medium. For example, a user may have a first priority for a first language in a first medium (e.g., real-time voice) whereas the same user may have a second priority for the first language in a second medium (e.g., text or some other non-real-time medium). The relative priorities of a user's language preferences will dictate what translations are performed, if any, when the user is interacting with another user. In even more sophisticated embodiments, the communication preference profile may contain historical communications for the user to help determine context and semantics which are specific to that user's communication patterns. For example, if the user commonly discusses a particular subject and within that subject one or more words occur with a particular frequency, then pre-populated translations for those particular words may be contained within the communication preference profile. This is particularly useful where a single word may be capable of two or more translations. One of the two possible translations can be easily and automatically selected based on contextual information obtained from the communication preference profile.

A user may be given several options, such as whether to automatically translate voice, text, or instant messages, or whether to provide the user an option to translate. In some embodiments, these options can vary according to the type of communication medium involved. The user might be given an option in the user-preference interface whether or not to be alerted when translation is being performed.

Further embodiments include a back-translation mechanism. A person generating text or speech, for example, can view or hear a version of the translated speech translated back in his or her own language. For example, an Indian speaker may have his words translated into Japanese for a Japanese listener. Once translated into Japanese, the speech is then re-translated back to Indian and presented back to the speaker, so that the Indian speaker can judge whether the translation is a fair representation of the syntax and/or semantic content. This back-translation can be performed in real-time according to some embodiments. Further, each direction of the translation can be performed by a human, a machine, or both. In addition, there can be more than one speaker and more than one listener. According to some embodiments, these options may be set beforehand in a user profile, or the user may be prompted to choose them in real time depending on various trigger conditions. Furthermore, while an original translation may be provided in one medium, the back-translated version of the original translation may be provided in a different medium. For example, a voice message may be translated into a text message, but the back-translated version of the voice message may be provided to the original speaker as a voice message. Other possibilities will become apparent based on the disclosure provided herein.

In some embodiments, the back-translation may be provided to the originating user before the translated version of the message is transmitted to the other user. The transmission of the translated version may be contingent upon the originating user verifying that the back-translated version is accurate and only upon receiving such a confirmation (or after a predetermined amount of time has passed thereby permitting an assumed confirmation of accuracy). Such a confirmation feature provides the originating user with the ability to control the message and ensure that inaccurate translations are not transmitted during a communication interaction. While transmission contingent upon confirmation of a back-translation may be difficult to implement in a real-time communication, such features are particularly useful in non-real-time and near-real-time communications such as email communications, Short Message Service (SMS) communications, Instant Messaging (IM) chats, TTY calls, and the like.

In accordance with at least some embodiments of the present invention, a method is provided that generally comprises:

receiving user input from a first user at a first user device, the user input being in a first language and being received in connection with a communication session established between the first user and a second user at a second user device;

determining communication preferences of at least the first user, the communication preferences being stored in one or more data structures maintained on at least one of the first user device and second user device;

based on the determined communication preferences of at least the first user, translating the user input into a translated user input, the translated user input being in a second language that is at least understood by the second user; and

providing the translated user input from the second user device to the second user.

The phrases “at least one”, “one or more”, and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions “at least one of A, B and C”, “at least one of A, B, or C”, “one or more of A, B, and C”, “one or more of A, B, or C” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.

The term “a” or “an” entity refers to one or more of that entity. As such, the terms “a” (or “an”), “one or more” and “at least one” can be used interchangeably herein. It is also to be noted that the terms “comprising”, “including”, and “having” can be used interchangeably.

The term “automatic” and variations thereof, as used herein, refers to any process or operation done without material human input when the process or operation is performed. However, a process or operation can be automatic, even though performance of the process or operation uses material or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be performed. Human input that consents to the performance of the process or operation is not deemed to be “material”.

The term “computer-readable medium” as used herein refers to any tangible storage that participates in providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state medium like a memory card, any other memory chip or cartridge, or any other medium from which a computer can read. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, the invention is considered to include a tangible storage medium and prior art-recognized equivalents and successor media, in which the software implementations of the present invention are stored.

The terms “determine”, “calculate”, and “compute,” and variations thereof, as used herein, are used interchangeably and include any type of methodology, process, mathematical operation or technique.

The term “module” as used herein refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, while the invention is described in terms of exemplary embodiments, it should be appreciated that individual aspects of the invention can be separately claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is described in conjunction with the appended figures:

FIG. 1 is a block diagram of a communication system in accordance with embodiments of the present invention;

FIG. 2 is a flow diagram depicting an exemplary communication method in accordance with embodiments of the present invention;

FIG. 3 is a flow diagram depicting a first exemplary message exchange protocol in accordance with embodiments of the present invention;

FIG. 4 is a flow diagram depicting a second exemplary message exchange protocol in accordance with embodiments of the present invention;

FIG. 5 is a flow diagram depicting a third exemplary message exchange protocol in accordance with embodiments of the present invention; and

FIG. 6 is a flow diagram depicting a fourth exemplary message exchange protocol in accordance with embodiments of the present invention.

DETAILED DESCRIPTION

The ensuing description provides embodiments only, and is not intended to limit the scope, applicability, or configuration of the claims. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the appended claims.

A communication system 100 including a user device 104 capable of allowing a user to interact with other user devices 104 via a communication network 152 is shown in FIG. 1. The depicted user device 104 includes a processor 108, a memory 112, a user interface 144, and a network interface 148. Although the details of only one user device 104 are depicted in FIG. 1, one skilled in the art will appreciate that some or all of the other user devices 104 may be equipped with similar or identical components as the user device 104 depicted in detail.

The user interface 144 may include a user input and/or user output device. The user interface 144 enables a user or multiple users to interact with the user device 104. Exemplary user input devices which may be included in the user interface 144 comprise, without limitation, a microphone, a button, a mouse, trackball, rollerball, or any other known type of user input device. Exemplary user output devices which may be included in the user interface 144 comprise, without limitation, a speaker, light, Light Emitting Diode (LED), display screen, buzzer, or any other known type of user output device. In some embodiments, the user interface 144 includes a combined user input and user output device such as a touch-screen.

The processor 108 may include a microprocessor, Central Processing Unit (CPU), a collection of processing units capable of performing serial or parallel data processing functions, and the like.

The memory 112 may include a number of applications or executable instructions that are readable and executable by the processor 108. For instance, the memory 112 may include instructions in the form of one or more modules and/or applications. The memory 112 may also include data and rules in the form of one or more data structures 140 a-N which can be used by one or more of the modules and/or applications described herein. Exemplary applications include an operating system 132 and various other applications, such as a communication application 128. The operating system 132 is a high-level application which enables the various other applications and modules to interface with the hardware components (e.g., processor 108, network interface 148, and user interface 144) of the user device 104. The operating system 132 also enables a user or users of the user device 104 to view and access the applications and modules in memory 112 as well as data structures 140 a-N contained in memory 112.

Although the applications and modules are depicted as software instructions residing in memory 112 and those instructions are executable by the processor 108, one skilled in the art will appreciate that the applications and modules may be implemented partially or totally as hardware or firmware. For example, an Application Specific Integrated Circuit (ASIC) may be utilized to implement some or all of the functionality discussed herein.

Exemplary features offered by the communication application 128 include, without limitation, communication features (e.g., voice communication applications, text communication applications, video communication applications, multimedia communication applications, etc.), web-browsing features, word-processing features, and so on.

In some embodiments, the communication application 128 includes the ability to facilitate real-time communications between the user device 104 and other user devices 104 across the communication network 152. The communication application 128 may facilitate a two-party communication session or a multi-party communication session. For example, the communication application 128 may include functions to support certain types of communications such as voice communications, text communications, IM communications, video communications, and multi-media communications. In some embodiments, the communication application 128 may make use of a conference bridge or mixer that is located either on the user device 104 or some external server.

Specific modules which may be included in memory 112 include, without limitation, a language preference detection module 116, a translation module 120, and a back-translation module 124.

The language preference detection module 116 provides the user device 104 with the ability to determine a user's communication preferences as well as communication preferences of a far-end user (i.e., a user utilizing a far-end user device 104 which is separated from the user device 104 that originally received the user input, also referred to as a near-end user device, by a communication network 152). When invoked the language preference detection module 116 is capable of referring to the communication preference profile 136 maintained locally on the user device 104. This communication preference profile 136 may contain communication preferences of the user utilizing the user device 104 (i.e., user 1) and/or communication preferences of a far-end user (i.e., user 2, user 3, and/or user M).

Communication preferences for far-end users may be obtained by transmitting a query for such information to the user device 104 being utilized by the far-end user. Once communication preferences have been obtained for a particular user, those preferences may be maintained in the user device 104 for a predetermined amount of time or indefinitely. The exchange of communication preferences between user devices 104 may be done automatically upon initiation of a communication session (e.g., during a handshake protocol or during the exchange of SIP INVITE, OK, and/or ACK messages) and transparently, such that the users are unaware of the exchange protocol.

The automated exchange of communication preferences may be controlled by a user, if desired, such that communication preferences are not exchanged unless certain criteria are satisfied. Exemplary conditions imposed prior to allowing an exchange of communication preferences include, without limitation, receiving user permission, certifying that the requesting user is trusted, and so on.

The communication preferences of the various users may be maintained locally, especially for far-end users that are known to have frequent communication interactions with the user of the near-end user device 104. In some embodiments, if a far-end user is found in the near-end user's call log more than a predetermined number of times within a predetermined period of time (e.g., more than 3 times within the last week), then that far-end user's communication preferences may be stored in memory 112 whereas the communication preferences of another far-end user that only appears in the near-end user's call log once in the last week may be deleted. The rules for maintaining the communication preferences of various users may be provisioned by the user or may be automatically provisioned as part of the operating parameters of the language preference detection module 116.

In some embodiments, a user may have multiple language data structures 140 a-N where that user is multi-lingual. In such embodiments, the language preference detection module 116 may refer to the various language priorities of the users engaged or about to be engaged in a communication session to determine the appropriate translations that are necessary to accommodate the communication preferences of each user. In some embodiments, a multi-lingual user may define the proficiencies for each language and a priority with respect to other languages. Such priorities may be the same across multiple media types or may vary according to media type. For example, a user may have a first set of language priorities for a first media type (e.g., voice media) and a second set of language priorities for a second media type (e.g., text media). The language preference detection module 116 is capable of determining the preferences of the near-end user and the far-end users and providing such information to the translation module 120 and back-translation module 124 to facilitate their operation.

In some embodiments, the language preference detection module 116 may notify a calling user that the far-end user has a certain set of language preferences. Such preferences may be displayed to the calling user as a part of ringback or while the call is being established, thereby allowing the calling user to quickly determine what language the far-end user will likely prefer to hear. This feature is especially useful where the calling user is multi-lingual and is possibly capable of communicating with the called user in a common language. Presentation of the communication preferences for the called user to the calling user allows the calling user to determine, prior to communicating with the called user, a common language, even if that common language between the users is neither users' preferred language. All of this information can help make the initial exchange between the two users seamless and smooth.

The translation module 120 is provided to translate user inputs prior to providing such inputs to another user can receive the communication in either an understandable or preferred language. The translation module 120 may be automatically invoked by the language preference detection module 116 when the language preference detection module 116 detects a difference in language preferences or capabilities between two or more users involved in a communication session. The translation module 120 may be capable of translating audio, text, and/or other inputs into a different language. In some embodiments, the translation module 120 provides the translated version of the user input in the same medium as the original user input. In some embodiments, the translation module 120 may alter the medium such that the user input is in one medium but the translated version thereof is in a second, different medium.

The functionality of the back-translation module 124 may be similar to the functionality of the translation module 120 in that the back-translation module 124 receives an input in a first language and translates that input into an output that is in a second language. The back-translation module 124, however, provides its output back to the user who originally provided the user input that was translated. The back-translation module 124 provides the originating user with the ability to obtain feedback regarding the translation process to determine if accurate translations are being, or going to be, provided to the far-end user. Essentially, the back-translation module 124 is a component which helps ensure that message content is not being lost or altered in translation.

Although the various modules and data structures for translation services are depicted as residing on the user device 104, one skilled in the art can appreciate that one, some, or all of the depicted components of the user device 104 may be provided by a language module 160 which is operating on an external server 156. In some embodiments, the external server 156 is administered by a third-party service meaning that the entity which administers the server 156 is not the same entity that either owns or administers the user device 104. In some embodiments, the server 156 may be administered by the same enterprise that owns or administers the user device 104. As one particular example, the user device 104 may be provided in an enterprise network and the server 156 may also be provided in the same enterprise network. As one possible implementation of this scenario, the server 156 may be configured as an adjunct to an enterprise firewall system which may be contained in a gateway or Session Border Controller (SBC) which connects the enterprise network to a larger unsecured and untrusted communication network 152.

The memory 112 may also include a communication module, instead of one or more communication-based applications 128, which provides the communication functionality of the user device 104. In particular, the communication module may contain the functionality necessary to enable the user device 104 to communicate with other user devices 104 across the communication network 152. As such, the communication module may have the ability to access user communication preferences maintained within a locally-stored profile 136 (or remotely-stored profile), format communication packets for transmission via the network interface 148, as well as condition communication packets received at a network interface 148 for further processing by the processor 108.

In some embodiments, the data structures 140 a-N are stored directly on the user device 104. In some embodiments, the data structures 140 a-N may be stored by the enterprise and pushed to the user device 104 on an as-needed basis. The remote storage of the data structures 140 a-N may occur on another user device or on a server. In some embodiments, a portion of the data structures 140 a-N are stored locally on the user device 104 and another portion of the data structures 140 a-N is stored at an enterprise and provided on an as-needed basis.

The network interface 148 comprises components for connecting the user device 104 to a communication network. In some embodiments, a single network interface 148 connects the user device to multiple networks. In some embodiments, a single network interface 148 connects the user device 104 to one network and an alternative network interface is provided to connect the user device 104 to another network.

The network interface 148 may comprise a communication modem, a communication port, or any other type of device adapted to condition packets for transmission across a communication network 152 to a destination user device 104 as well as condition received packets for processing by the processor 108. Examples of network interfaces include, without limitation, a network interface card, a wireless transceiver, a modem, a wired telephony port, a serial or parallel data port, a radio frequency broadcast transceiver, a USB port, or other wired or wireless communication network interfaces.

The type of network interface 148 utilized may vary according to the type of network which the user device 104 is connected, if at all. Exemplary communication networks 152 to which the user device 104 may connect via the network interface 148 include any type and any number of communication mediums and devices which are capable of supporting communication sessions, such as voice calls, video calls, chats, emails, TTY calls, multimedia sessions, or the like. In situations where the communication network 152 is composed of multiple networks, each of the multiple networks may be provided and maintained by different network service providers. Alternatively, two or more of the multiple networks in the communication network 152 may be provided and maintained by a common network service provider or a common enterprise in the case of a distributed enterprise network.

Exemplary types of communication networks 152 include, without limitation, a Local Area Network (LAN), multiple LANs, a Wide Area Network (WAN), an enhanced IP-based network, a circuit-switched network, a Session Initiation Protocol (SIP) network, the Internet, the Public Switched Telephone Network (PSTN), a Plain Old Telephone System (POTS) network, an Integrated Serviced Digital Network (ISDN), a cellular communications network (e.g., 3G, 4G, etc.), an IP Multimedia Subsystem (IMS) network, or the like. In addition, it can be appreciated that the communication network 160 need not be limited to any one network type, and instead may be comprised of a number of different networks and/or network types.

As can be appreciated by one skilled in the art, functions offered by the modules depicted in FIG. 1 may be implemented in one or more network devices (i.e., servers, networked user device, non-networked user device, etc.).

Although each user device 104 is depicted as being utilized by one user, one skilled in the art will appreciate that multiple users may share a single user device 104. In such a scenario, the communication preferences for each sharing user may be accounted for by the language preference detection module 116 and a common language may be automatically selected for use by the group. However, it may also be possible to accommodate each user's utilization of a different language by receiving a user input from one user and providing a back-translation that is in the other user's preferred language. This may allow the user device 104 to simultaneously accommodate communications for users that speak different languages even when those users are located right next to each other.

In an exemplary implementation, a first and second user may be sharing a user device 104 to communicate with a third user (i.e., a far-end user) that is utilizing a different user device 104. The first and second user may not necessarily have a common language. When the first user talks the translation module 120 may translate the first user's input for transmission to the third user and simultaneously translate the first user's input for presentation to the second user, even though the second user is located next to the first user. Alternatively, the back-translation module 124 may be utilized to back-translate the original translation into a language that is understood by the second user and provide that back-translation to the shared user device 104.

With reference now to FIG. 2, an exemplary communication method will be described in accordance with at least some embodiments of the present invention. The method is initiated when a communication session is initiated or about to be initiated between two or more user devices 104 and the language preference detection module 116 determines a first user's communication preferences (step 204). The first user may correspond to a near-end user and that user's communication preferences may be obtained by referring to the one or more language data structures 140 a-N contained within the communication preference profile 136.

Thereafter, the language preference detection module 116 determines a second user's communication preferences (step 208). The second user may correspond to a near-end user (i.e., a user that is sharing the user device 104 with the first user) or a far-end user (i.e., a user that is utilizing a different user device 104 than the first user)). This step may also be performed by referring to a locally stored communication preference profile 136 to determine if the communication preferences for the second user are locally available. If the desired information is not locally available, then the language preference detection module 116 may request such data from the second user's user device 104 or from any other known source of such information. If such information cannot be obtained, then the language preference detection module 116 may assume a communication preference for the second user based on one or more of (i) the location of the second user; (ii) the location of the user device 104 being utilized by the second user; (iii) presence information of the second user (i.e., whether the second user is logged into any communication service and, if so, whether communication preferences for that second user are obtainable from the communication service); and the like.

Based on the determination of the first and second user's communication preferences, the language preference detection module 116 determines translation requirements, if any (step 212). Specifically, the language preference detection module 116 may compare the communication preferences of the first and second users and determine if there are any common languages between the users. If so, the language preference detection module 116 may simply notify one or both users of the common language (which may not necessarily correspond to either users' most preferred language) and not take any further action. This notification may be provided to one or both users before the communication session is initiated, thereby facilitating a smooth beginning to the communication session. If no common language is detected, then the language preference detection module 116 may determine that translation facilities are necessary as between the first and second user.

The method continues with the language preference detection module 116 determining whether there are any additional users that will be involved in the communication session (step 216). Such additional users may utilize their own user device 104 or may be sharing a user device 104 with the first or second user.

If additional users are determined to be involved in the communication session, then the language preference detection module 116 determines the next user's communication preferences in a manner similar to that which was utilized to determine the second user's communication preferences (step 220). If any language preference difference exists between the next user and either the first or second user, then the language preference detection module 116 may accommodate for such differences (step 212). Again, the language preference detection module 116 may try to find a common language between the multiple users or find a language combination that will result in the least amount of translation. Such determinations may be communicated to the users prior to initiation of the communication session. Otherwise, the language preference detection module 116 may prepare to invoke the translation module 120 and back-translation module 124 to facilitate multiple translations during the communication session.

Once all users involved in the communication session have been accounted for, the method continues when user input is received from the first user and that input is translated for the other users, again if such translations are necessary (step 224). User input can be received in voice, text, video, or combinations thereof. The translation module 120 may be equipped to translate one, several, or all forms of user input received from the first user such that the user input can be understood by the other users involved in the communication session.

The translation of the first user's input is then provided to the other users (step 228). The distribution of the first user's input can vary according to whether each user is utilizing a separate user device 104 or whether two or more users are sharing a user device 104. Furthermore, if two far-end users are sharing a user device 104, a translation of the first user's input to a common language for both far-end users may be performed and a single translation may be provided to the shared user device 104. Alternatively, the first user's input 104 may be translated twice, once for each far-end user sharing the user device 104, and both translations may be provided to the same user device 104 and simultaneously displayed for both of the far-end users.

The method continues with the back-translation module 124 re-translating one or more versions of the original translation back to a language that is understandable by the first user (step 232). The back-translation language can be the same as the original language utilized by the first user, but this is not necessarily required. Rather, the back-translation language can be different from the original language utilized by the first user. The back-translation module 124 utilized to perform the back-translation may reside on the user device being utilized by the first user, a far-end user device 104, or an external server 156 which is providing the language facilities described herein. Regardless of where the back-translation is performed, the back-translation of the first user's input is provided back to the first user (step 236). This method can continue for as long as the communication session persists.

Although step 228 is depicted as occurring before step 236, certain embodiments of the present invention can make transmission of the translation contingent upon the first user receiving the back-translation and confirming the accuracy of the translation.

With reference now to FIGS. 3-6 exemplary ways of implementing the methods described herein will be discussed in accordance with embodiments of the present disclosure. Referring initially to FIG. 3, input received from a first user may be provided to a user device 104 (S304). The user input may be received via the user interface 144. In some embodiments, the user input is an audio input (i.e., received at a microphone or similar sound transducer). In some embodiments, the user input is typed by the user. In some embodiments, the user input could be in sign language. In some embodiments, the user input may comprise a video that includes both an image portion and an audio portion. Combinations of the above-described inputs may also be received at the user device 104.

The user device 104 which originally receives the user input may then translate the user input and provide the translated user input to another user device 104 (S308). In some embodiments this step includes transmitting one or more communication packets across the communication network 152 where the communication packets contain the translated user input. Thereafter, the translated user input is provided to a second user (S312). The manner in which the translated user input is provided to the second user may vary depending upon the communication preferences of the first user and/or the second user. It may also depend upon the capabilities of the second user's user device 104. Before, substantially during, or after step S312 the user device 104 which received the original input from the first user may also generate a back-translation of the translated user input and provide the back-translated user input to the first user (S316).

With reference now to FIG. 4, the protocol described in FIG. 3 may be modified slightly such that the user device 104 which originally receives the user input (S404) may transmit the un-translated user input to the far-end user device 104 (S408). This user device 104 may then translate the user input and provide such translations to the second user (S412). Before, substantially during, or after step S412, the far-end user device 104 may also generate a back-translation of the translated user input and transmit such back-translated user input to the user device 104 associated with the first user (S416). Upon receiving the back-translated user input, the user device 104 presents the back-translated user input to the first user (S420).

With reference now to FIG. 5, another possible modification to the protocols depicted in FIGS. 3 and 4 is depicted. In the protocol depicted in FIG. 5, the first user's input is received at the near-end user device 104 (S504) and translated. The translation of the user input is then provided to the far-end user device 104 (S508). Upon receiving the translated user input, the far-end user device may present the translated user input to the second user (S512). Before, substantially during, or after step S512, the far-end user device 104 may also generate a back-translation of the translated user input and transmit such back-translated user input to the near-end user device 104 (S516), which in turn presents the back-translated user input to the first user (S520).

With reference now to FIG. 6, another possible translation protocol is depicted. The embodiment depicted in FIG. 6 utilizes a language module 160 of an external server 156 to perform one or more translation steps described herein. More specifically, the user input of the first user is received at the near-end user device 104 (S604) and transmitted to the server 156 (S608). The server 156 then translates the user input into a translated user input, which is subsequently provided to the far-end user device 104 (S612). Upon receiving the translated user input, the far-end user device 104 presents the translated user input to the second user (S616). Before, substantially during, or after steps S612 and/or S616, the server 156 may also generate a back-translation of the translated user input. The back-translated user input is provided back to the near-end user device 104 (S620), which subsequently provides the back-translated user input to the first user (S624).

As can be appreciated, any of the above-described protocols can be modified with features from any other protocol or method described herein. Accordingly, the four specific protocols depicted in FIGS. 3-6 are not intended to completely exhaust all possible translation and message exchange protocols that are contemplated by the present disclosure.

In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the methods. These machine-executable instructions may be stored on one or more machine readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.

Specific details were given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.

Also, it is noted that the embodiments were described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.

Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

While illustrative embodiments of the invention have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art. 

1. A method, comprising: receiving user input from a first user at a first user device, the user input being in a first language and being received in connection with a communication session established between the first user and a second user at a second user device; determining communication preferences of at least the first user, the communication preferences being stored in one or more data structures maintained on at least one of the first user device and second user device; based on the determined communication preferences of at least the first user, translating the user input into a translated user input, the translated user input being in a second language that is at least understood by the second user; and providing the translated user input from the second user device to the second user.
 2. The method of claim 1, wherein the second user device performs the translating step.
 3. The method of claim 2, wherein the communication preferences of at least the first user are transmitted to the second user device during initiation of the communication session and wherein the one or more data structures are maintained on both the first user device and second user device.
 4. The method of claim 3, further comprising: determining that the communication session between the first user and second user has ended; thereafter, storing the communication preferences of at least the first user at the second user device such that the communication preferences of at least the first user are available to a language preference detection module residing on the second user device for subsequent communication sessions between the first user and second user.
 5. The method of claim 4, wherein the communication preferences of at least the first user are stored at the second user device only in the event that a communication log for the second user shows that the second user has communicated with the first user more than a predetermined number of times within a predetermined period of time.
 6. The method of claim 5, wherein, upon determining that the communication preferences of at least the first user are to be stored at the second device, communication preferences of the second user are transmitted to the first user device regardless of whether or not the first and second user are currently engaged in a communication session.
 7. The method of claim 1, wherein the second user device is shared by the second user and a third user, the method further comprising: determining communication preferences of the second and third users, wherein the communication preferences of the second and third users are different; translating the user input into a second translated user input, the second translated user input being in a third language that is at least understood by the third user; and providing the second translated user input from the second user device to the third user at substantially the same time that the translated user input is provided to the second user.
 8. The method of claim 1, wherein a server performs the translating step.
 9. The method of claim 1, further comprising: generating a back-translation of the translated user input; and providing the back-translation of the translated user input from the first user device to the first user.
 10. The method of claim 9, wherein providing the translated user input from the second user device to the second user is conditioned upon the first user receiving the back-translation of the translated user input and confirming the accuracy thereof.
 11. The method of claim 1, wherein the first user device performs the determining and translating steps.
 12. A computer readable medium having stored thereon instructions that cause a computing system to execute a method, the instructions comprising: instructions configured to receive user input from a first user at a first user device, the user input being in a first language and being received in connection with a communication session established between the first user and a second user at a second user device; instructions configured to determine communication preferences of at least the first user, the communication preferences being stored in one or more data structures maintained on the first user device; instructions configured to, based on the determined communication preferences of at least the first user, translate the user input into a translated user input, the translated user input being in a second language that is at least understood by the second user; and instructions configured to transmit the translated user input to the second user device.
 13. The computer readable medium of claim 12, wherein the communication preferences also include communication preferences of the second user.
 14. The computer readable medium of claim 13, wherein the instructions further comprise: instructions configured to notify the first user of the communication preferences of the second user prior to establishment of the communication session.
 15. The computer readable medium of claim 12, wherein the instructions further comprise: instructions configured to generate a back-translation of the translated user input; and instructions configured to present the back-translation of the translated user input to the first user.
 16. The computer readable medium of claim 15, wherein the user input is in a first communication medium and the back-translation of the translated user input is in a second communication medium.
 17. A communication device, comprising: a memory including one or more language-based modules, the one or more language-based modules comprising: a language preference detection module to receive user input from a first user, the user input being in a first language and being received in connection with a communication session established between the first user and a second user and subsequently determine communication preferences of at least the first user, the communication preferences being stored in one or more data structures in memory; and a translation module to translate the user input into a translated user input based on the determined communication preferences of at least the first user; and a processor to execute the instructions of the modules included in memory.
 18. The device of claim 17, further comprising a user interface and a network interface.
 19. The device of claim 17, wherein the one or more language-based modules are configured to accommodate a multi-party communication session where at least three of the users involved in the multi-party communication session have different communication preferences.
 20. The device of claim 17, wherein the one or more language-based modules further comprise a back-translation module to translate the translated user input into a back-translated user input for presentation to the first user. 